import pandas as pd
import requests 
import lxml.html

save_data=[]#存储数据
#获取5页信息
for page in range(1,6):
    #伪装浏览器
    header = {'User-Agent':'Chrome/55.0.2883.75 Safari/537.36'}
    #构造url，使用到format函数
    url='https://www.qidian.com/all/page{}/'.format(str(page))
    #获取源代码
    source = requests.get(url,headers = header)
    selector=lxml.html.fromstring(source.text)
    #第一步：获取<ul class="all-img-list cf">节点里面的所有<li>节点
    info=selector.xpath('//ul[@class="all-img-list cf"]/li')#得到一页符合  
    #获取图片链接
    picture=info[0].xpath('//div[1]/a/img/@src')
    #获取一页的标题
    title=info[0].xpath('//div[2]/h4/a/text()')
     #获取作者信息，第一个P节点
    author=info[0].xpath('//div[2]/p[1]/a[1]/text()')
    #获取小说风格
    style_1=info[0].xpath('//div[2]/p[1]/a[2]/text()')
    style_2=info[0].xpath('//div[2]/p[1]/a[3]/text()')
    #小说状态
    finish=info[0].xpath('//div[2]/p[1]/span/text()')
    #小说简介，第二个p节点
    introduces=info[0].xpath('//div[2]/p[2]/text()')
    #整合数据
    data=pd.DataFrame()
    data['图片链接']=['https:'+i for i in picture]#补充https,形成完整链接
    data['标题']=title
    data['作者']=author[1:]
    data['风格']=[style_1[k]+'·'+style_2[k] for k in range(len(style_1))]#连接
    data['状态']=finish[1:]
    data['简介']=[l.strip() for l in introduces]#去掉空格
    save_data.append(data)
    save_data1=pd.concat(save_data)#获取完整数据
    save_data1.index=range(save_data1.shape[0])#重置索引
    save_data1.to_csv('小说起点中文网.csv',encoding='utf_8_sig')#保存数据
    
    
